﻿#region 命名空间

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Sharp.DataTransferObject;
using Sharp.Platform.Mvc.Attribute;

#endregion

namespace Sharp.WebBooter.Areas.CMS.Models
{
    /// <summary>
    /// 用户
    /// </summary>
    public class UserIndexViewModel
    {
        public UserIndexViewModel()
        {
            this.IsLockedOut = false;
            RegisteredTime = DateTime.Now;
            LastPasswordChangedDate = DateTime.Now;
        }
        public Guid Id { get; set; }
        /// <summary>
        /// 获取或设置当前客户的用户名。
        /// </summary>
        public string UserName { get; set; }

        /// <summary>
        /// 获取或设置当前客户的登录密码。
        /// </summary>
        public string Password { get; set; }

        /// <summary>
        /// 获取或设置当前客户的电子邮件地址。
        /// </summary>
        public string Email { get; set; }

        /// <summary>
        /// 获取或设置一个<see cref="bool" />值，该值表示当前用户账户是否已被禁用。
        /// </summary>
        public bool IsDisabled { get; set; }

        /// <summary>
        /// 获取或设置用户账户注册的时间。
        /// </summary>
        [Required]
        public DateTime RegisteredTime { get; set; }

        /// <summary>
        /// 获取或设置用户账户最后一次登录的时间。
        /// </summary>
        public DateTime? LastLogonTime { get; set; }
        /// <summary>
        /// 获取或设置用户最后一次登录的IP
        /// </summary>
        public string LastLogonIp { get; set; }
        /// <summary>
        /// 获取或设置成员资格用户的特定于应用程序的信息
        /// </summary>
        /// <value>成员资格用户的特定于应用程序的信息</value>
        [StringLength(255)]
        public string Comment { get; set; }

        /// <summary>
        /// 获取一个值，该值指示成员资格用户是否因被锁定而无法进行验证。
        /// </summary>
        /// <value>如果成员资格用户因被锁定而无法进行验证，则为 true；否则为 false。</value>
        public bool IsLockedOut { get; set; }


        /// <summary>
        /// 成员资格用户上次进行身份验证或访问应用程序的日期和时间
        /// </summary>
        public DateTime? LastActivityDate { get; set; }

        /// <summary>
        ///  最近一次锁定成员资格用户的日期和时间
        /// </summary>
        public DateTime? LastLockoutDate { get; set; }

        /// <summary>
        /// 获取上次更新成员资格用户的密码的日期和时间
        /// </summary>
        public DateTime LastPasswordChangedDate { get; set; }


        /// <summary>
        /// 添加日期
        /// </summary>
        /// <value>添加日期</value>
        public System.DateTime? CheckInTime { get; set; }
        /// <summary>
        /// 录入员的id
        /// </summary>
        /// <value>录入员的id</value>
        public Guid? CheckInUserId { get; set; }
        /// <summary>
        /// 修改时间
        /// </summary>
        /// <value>修改时间</value>
        public System.DateTime? ModifiTime { get; set; }
        /// <summary>
        /// 修改数据的用户Id
        /// </summary>
        /// <value>修改数据的用户Id</value>
        public Guid? ModifiedUserId { get; set; }


        /// <summary>
        /// 用户组
        /// </summary>
        [Display(Name = "用户组"), DisplayValueField("Title", "Id")]
        public IList<UserGroupDTO> UserGroups { get; set; }

    }
}